perm filename NOTICE[UP,DOC]15 blob
sn#046523 filedate 1973-06-04 generic text, type T, neo UTF8
00050 *25 Feb 1972 NOTICEs LES
00100
00150 This file, kept in NOTICE[UP,DOC], is intended to function as a
00200 computerized bulletin board. System programmers and CUSP file
00250 contributors are invited to disseminate information concerning new
00300 programs and system features by adding notices to this file. The
00350 format is arbitrary, except that the first line (and only the first
00400 line) should begin with a "*" and should contain three fields in the
00450 form
00500 *<date><TAB><subject><TAB><programmer initials>
00550 In the date field, the year, month and day may be given in any order
00600 and the year may be abbreviated to 2 digits, but the month must be
00650 given as 3 or more letters.
00700
00750 *9 Jan 1973 NEWS LES
00800 To get selective listings from the NOTICE file, say "R NEWS", which
00850 will respond with an asterisk and expect a query such as
00900 *March 15
00950 This asks for all notices posted since the ides of March. If the day
01000 is omitted, 1 is assumed; if the month is omitted, January is
01050 assumed; if the year is omitted (as above) the last instance is
01100 assumed.
01150
01200 *Nov<TAB>SAIL
01250 is an example of a more general kind if query. This asks for all
01300 notices since last November 1 that contain the string "SAIL"
01350 somewhere in the subject field, with any case differences ignored.
01400 The search could be made more specific by saying
01450 *NOV<TAB>SAIL<TAB>DCS
01500 which delivers only such notices written by Dan Swinehart.
01550
01600 If the query begins with a <TAB>, so that the date is omitted, then
01650 all dates will be accepted. Similarly, the Subject field may be
01700 omitted. A null query outputs the entire NOTICE file.
01750
01800 If you would like the output to be spooled, type "*" at the end of
01850 your query, e. g.
01900 *July 4, 1776 Sex*
01950 If you would like to see title lines only, put a "-" at the end. You
02000 can use both "*" and "-" together in either order.
02050
02100 If you forget all this, type "?<return>" and this notice will appear
02150 magically.
02200
02250 *1 JAN 1972 DO RPH
02300 Manual is in DO.RPH[S,DOC].
02350
02400 *1 JAN 1972 DMAN REG
02450 Dectape manager (PDP-10 format) -- see DMAN.REG[S,DOC].
02500
02550 *1 JAN 1972 SPOOLER REG
02600 See SPOOL.DOC[S,DOC].
02650
02700 *1 JAN 1972 RSL SL WHAMS BAMS ETC JHS
02750 Service Level Reservation System -- see RSL[S,DOC]
02800
02850
02900 *1 JAN 1972 Keyboard Commands LES
02950 To get a summary of line editor and other Monitor commands, list
03000 KEY.LES[S,DOC).
03050
03100 *11 APR 1973 INFO REM
03150
03200 To have access to the REM information system, type "R INFO".
03250 The general form of command is "R INFO;<FILNAM>;<PRETYPE>"
03300 if you are an expert and know what that means.
03350
03400 *1 Jan 1972 FINGER LES
03450
03500 To get a listing of the names of all users currently logged in and
03550 their locations, say "R FINGER".
03600
03650 *29 Feb 1972 "Sticky PPN's" (RPG, COMPILE) DCS
03700
03750 A PPN specification [P,PN] appearing before a file name in an
03800 RPG command string will be used for all subsequent files which
03850 do not specify a PPN explicitly. This default remains in effect
03900 until another "sticky PPN" is specified.
03950 As an example, if I am running under [AIL,DCS]:
04000
04050 COMPILE SAIL=HEAD+DB+[S,AIL]SAIL+SYM+PARSE+PROD[AIL,DCS]+EXPR
04100
04150 would write the output on [AIL,DCS], get HEAD,DB, and PROD from
04200 [AIL,DCS], and get SAIL, SYM, PARSE, and EXPR from [S,AIL].
04250
04300 *1 Jan 1972 SAIL Statement Counter Profile RES
04350
04400 To find out how to get SAIL to give you execution frequency data for
04450 pieces of your program, list NEWMAN[S,AIL].
04500
04550 *2 Mar 1972 CREF Default Listing Device DCS
04600
04650 The CREF default listing device has been changed from LPT to DSK.
04700 This change is not made in RPG mode (so that the CREF system
04750 command will still go directly to LPT).
04800
04850 *14 Mar 1972 TV "." and <esc>I Features DCS
04900
04950 Typing "⊗." (see TVED.DCS[UP,DOC] for notation) will cause the current
05000 page to become a permanent part of the file (like "W" in SOS). CANCEL
05050 will henceforth bring back this version, not the old one.
05100
05150 To interrupt a "FIND" search prematurely, type <esc>I. This replaces
05200 the "\<crlf>" method.
05250
05300 *23 Mar 1972 TV for III DCS
05350 The TV editor (though still officially unsupported) will now run on
05400 both Data-Disk and III. In fact, you can transfer (by detach/attach)
05450 from one to the other in mid-edit!
05500
05550 *30 APR 72 SEND RPH
05600 SEND NOW HAS THE FOLLOWING FORMATS:
05650
05700 SEND PN SEND TO ALL PN'S
05750 SEND * WRITE NOTICE.TXT
05800 SEND *,PN SAME AS SEND PN
05850 SEND P,* SEND TO ALL P'S
05900 SEND P,PN SEND TO SPECIFIC P,PN
05950 SEND *,* SAME AS SEND *
06000 A PN IS SOME PROGRAMMER NAME
06050 A P IS SOME PROJECT NAME
06100
06150 *30 APR 72 FAIL FW
06200 The double arrow character is no longer treated specially
06250 within the comment portion of a line. When not within a
06300 comment, it is equivalent to a carriage-return, line-feed
06350 pair. Now, within comments, it prints as itself.
06400
06450 *3 JUN 1972 RAID DCS
06500 A new version of RAID is on the system. Since it is compatible with
06550 both Data-Disc and III consoles, I have put it on SYS: as both
06600 RAID.REL and TVRAID.REL. Therefore /V, /1V, /H, /1H will all load
06650 the same program. Later, TVRAID will be phased out (of LOADER, RPG)
06700 and the numeric argument to H and V switches will be ignored.
06750 This version has been tested fairly carefully. But report any
06800 problems you have to DCS, anyway. The old files are saved as
06850 RAID.RLO and TVRAID.RLO on [CSP,SYS].
06900
06950 The following things have been changed:
07000 __ There are a few display changes; in particular, the arrow
07050 conventions of the Data-Disc RAID are now used everywhere.
07100 __ Byte mode input will be displayed in byte mode.
07150 __ Conditional breakpoints now work exactly as advertised.
07200 __ Symbol←Expr, Symbol:, and Symbol<ctrl>K now work properly.
07250 __ All opcodes work on input (incl. ANDCAM, ORCAB, etc.)
07300
07350 The following new features have been added:
07400 __ There are three new entries to the dispatch table preceding
07450 DDT (JOBDDT → DDT) -- see RAID.ON[S,DOC] for the meaning of
07500 this table. The three are:
07550 DDT-12: →$RPTCNT See below
07600 DDT-11: →$BGDDT First word of DDT
07650 DDT-10: →DDTEND Last word of DDT
07700
07750 __ This is "Version 1" of RAID. The version is henceforth stored
07800 in the leftmost 13 bits of JOBDDT. Since DDT and old RAID
07850 contain 0 here, you can tell which you have loaded. This is for
07900 the benefit of programs which use new features -- they can
07950 try alternate methods if the Version isn't high enough.
08000 __ If you insert a JSR $I in your program, you will effectively
08050 place a breakpoint at that location. You can proceed via <ctrl>P.
08100 DO NOT single-step or set a breakpoint on this instruction!
08150 $I is an INTERNAL symbol in RAID. There is a pointer to it at
08200 DDT-6.
08250 __ When you type <call>DDT<cr>, RAID will simulate a breakpoint at
08300 the address specified by JOBOPC. You can proceed with <ctrl>P.
08350 Do not expect this to work if you enter DDT before running anything,
08400 or if your program jumps to DDT (unless it stores a reasonable
08450 address in JOBOPC first).
08500 __ n<ctrl><meta>S, where n is a number, will execute instructions
08550 in multi-step mode, as it would if n were absent. However, no
08600 change will be made in the display until:
08650 1) n instructions have been executed (<ctrl>X'ed subr =1 instr.)
08700 2) RAID must pause to get instructions at a subroutine call.
08750 3) You interrupt the stepping by typing something, or a
08800 breakpoint is encountered.
08850 After you respond at a type (2) pause, again the display remains
08900 unchanged until one of the conditions occurs again. If you
08950 responded <ctrl>S or <ctrl>X to the pause, the count will be
09000 exhausted before the display changes again -- barring type (3)
09050 events. The remaining count, if any, is always available in
09100 $RPTCNT. This is useful for counting exact numbers of
09150 executions in a given routine, etc.
09200 __ Symbol<meta>K obliterates the Symbol. Unlike <ctrl>K, which
09250 simply eliminates typout of the symbol, this also makes it
09300 undefined for typein. If, for instance, you have two locations
09350 with the name NM1, do:
09400 NM2←NM1 Assigns a new name to one of them.
09450 NM1<meta>K Deletes this symbol completely.
09500 NM1; Reveals value of the other NM1. Now
09550 NM2 refers to the first.
09600 __ Macros:
09650 Address<ctrl>M<letter> defines <ctrl><meta><letter> as
09700 a macro. When the macro is invoked, Address (it can be just
09750 an address or a byte pointer value) will be put in $M-1 (see
09800 RAID.ON[S,DOC]. This has the effect of evaluating the string
09850 at Address before evaluating any more keyboard input -- expanding
09900 the macro. Be warned that many <ctrl><meta><letter> combinations
09950 already mean something -- use one you can do without (the macro
10000 takes precedence).
10050 *4 JUN 1972 NEW DISPLAY EDITOR SRS
10100
10150 there now exists a new display editor, called ED, available for
10200 experimentation. to run it, type
10250 RU ED[S,SRS]
10300 when it starts up, there will be some documentation on the screen.
10350 ED is presently experimental, and improving. Features
10400 include: editing several files at once, splitting screen between
10450 several files or strings, faster than TV in some cases.
10500
10550 *6 JUN 1972 PUB MANUAL TES
10600
10650 A new version of PUB was put up today with some obscure bugs fixed.
10700 Indexes and headings now work well. AFTER PAGE does not always
10750 work, but AFTER TEXT is usually equivalent and does work.
10800 If you must use old version, please tell me why! To use it, log in
10850 as 12,TES and RUN PUB.
10900
10950 There is a new manual: SPOOL PUB.TES[S,DOC]/N/B It is 80 PAGES long, so
11000 if you don't plan to use PUB for a few months, it is advisable to
11050 wait for the SAILON to be printed. The new manual has an index
11100 and a tutorial for beginners, plus appendices with (untested) examples.
11150 To use PUB for simple purposes, only a portion of the manual needs to be
11200 read.
11250
11300 *MAR 1972 LOGOUT REG
11350 Recent changes to logout command.
11400
11450 The logout command is used to terminate a job that was created
11500 by Login, Fork, or Cfork commands. The usual form of the command is
11550 K or KJOB, typed at monitor level, followed by a carriage return.
11600
11650 A new command is called KAT, which combines the features of the
11700 K command and the ATtach command. KAT requires the job number of the
11750 job to which you want to attach. As in the Attach command, if you
11800 are attaching to a job with a different PPN than the job you are leaving,
11850 you must supply the ppn of the job to which you are attaching.
11900
11950 Command Formats
12000 Note that curly backets { and } denote optional
12050 arguments; pointy brackets < and > denote a symbolic item which should
12100 be replaced by some concrete instantiation of that item.
12150
12200 K or KJOB command:
12250
12300 K{JOB}{/<switch list>}
12350
12400 KA{TTACH} <job number> {[<project name>,<programmer name>{]}}{/<switch list>}
12450
12500 Each command line is terminated by a carriage return.
12550
12600 The item <switch list> consists of any sequence of letters
12650 chosen from the list below:
12700 THIS LIST HAS BEEN OMITTED BECAUSE I FORGOT THEM ALL.
12750
12800 For further confusion, consult R. Gorin.
12850 *1969 DDT WFW
12900 The following changes have been made to DDT:
12950
13000 l. Halfword printout is now of the form A,,B instead
13050 of (A)B. Either form may be used on input. The difference
13100 is that A,,B truncates A to 18 bits before
13150 swapping halves while (A)B does not.
13200
13250 2. $U is a new output mode. It is the same as $A$H.
13300 3. $F mode will now print normalized floating permit
13350 numbers as decimal integers. This means that
13400 FORTRAN users may, in general, use $F to look at
13450 all variables and they will be printed correctly
13500 either fixed or floating.
13550
13600 4. If the address of a string of ASCIZ text is placed
13650 in $nB+3, then whenever breakpoint n is reached,
13700 DDT will act as if the characters in the string were
13750 being read from the teletype. If you are preparing
13800 such a string in advance use either $ or ≠ (≠33 octal)
13850 for altmode.
13900
13950 5. If a bytepointer to an asciz string is placed in
14000 $M-l, DDT will act as if the characters in the string
14050 are being read from the teletype.
14100
14150 6. $$7" <delimiter> characters <delimiter> will act just
14200 like an asciz statement in MACRO or FAIL,i.e.,
14250 more than one word will be filled with asciz for
14300 the characters if necessary. $$" will have a similar
14350 effect but with sixbit.
14400
14450 7. Typing <number>$$P will cause DDT to do an automatic
14500 proceed <number> times instead of forever.
14550
14600 8. When printing in $$ mode, no word will be printed
14650 out as an I/O instruction (COND, DATAO, CONI, etc.)
14700 unless the device number is in a special table. The
14750 table is 10 words long and is in $I-1, $I-2, etc.
14800 Simply put device number here to have the appropriate I/O
14850 instructions printed.
14900
14950 9. If an address is placed in $M-2 then for each character
15000 DDT wishes to output, a pushj 1,@$M-2 will be executed.
15050 This allows output to be redirected to some device
15100 other than the TTY. The character is in register 5. The
15150 routine should preserve all AC's and end with a POPJ l,.
15200
15250 10. In byte mode output ($<number>0), if a size of 0
15300 is specified, DDT will use a special mark in $M+2.
15350 The boundry between 1 and 0 bits specifies the size
15400 of the bytes. For example, a word containing
15450
15500 11111111111 00000000000 11100010110001
15550
15600 would print 2 . 11 bit bytes, 2 3 bit bytes, 2 1 bit
15650 bytes, a 2 bit bytes, a 3 bit byte, and a 1 bit byte.
15700
15750 11. Bytes may be input of $<number>%. This should be
15800 followed by a string of unsigned octal numbers
15850 separated by common and terminated by an altmode. The
15900 number of bytes in a word is not integal the last
15950 byte is treated as if the word were larger
16000 (bit number greater than 35). This makes input compatible
16050 with output. A size of O uses the mark in $M+2
16100 as above.
16150
16200 12. It is now possible to print flag words and T type
16250 instruction (TRUN, TLNN, etc.) with suitable names
16300 for the bit involved. In $M+3 a pointer of the following
16350 form is placed:
16400
16450 _______
16500 | |
16550 _______ | |
16600 $M+3 | L1 | T0 | | Table 0 |
16650 | |
16700 _______
16750
16800
16850 _______
16900 | |
16950 | Table 1 |
17000 | |
17050 _______
17100
17150 _______
17200 | |
17250 | Table 2 |
17300 | |
17350 _______
17400 As many tables as desired may be included. The pointer
17450 to the last table should have 0 in the left half. Each
17500 table contains 36 words. The nth word contains the
17550 RADIX50 for the name of bit n. $<number>J mode will
17600 cause a word to be printed out using the bit names in
17650 table number. If an entry for a bit in 0, the numeric
17700 value will be printed. A typical word might look like
17750
17800 foo! baz! 123,, fool! garp! 2
17850
17900 $J means $0J. $nL causes the left half to be
17950 printed in symbolic and the right half to be printed in
18000 ↑STODAT:
18050 bit mode, using the names of the bits as if they appeared
18100 in the left half. $<number>V prints the left half in symbolic
18150 and the right half in bit mode.
18200
18250 13. You can now transfer to what is pointed to by the left half
18300 of a word in the same manner as you transfer using <tab>.
18350 The command is <control>].
18400
18450 *FEB 1972 NEW WHO DCS
18500 As of 12-9-71:
18550
18600 1. WHO will run for about two minutes, then quit. You can reset
18650 this time by issuing commands (see below).
18700
18750 2. Typing <call> does not stop spacewar jobs. However, after about
18800 6 seconds of operation after a <call>, the spacewar portion of
18850 WHO will bomb out (PC EXCEEDS MEM BOUNDS AT 377777). This will
18900 be made cleaner if the system types give me some help.
18950
19000 3. WHO commands are now single-character commands. WHO will not wait
19050 for a carriage return before executing one.
19100
19150 4. Previously, many lines of the WHO page were lost below the bottom
19200 of the screen. WHO now provides a "windowing" feature. Type "↑"
19250 to move the text up, so that the line which did appear at the
19300 center of the screen now appears at the top. This reveals several
19350 new lines at the bottom. A digit preceding the "↑" serves as a
19400 repeat factor.
19450
19500 5. The "↓" command, with optional repeat factor, moves the text down
19550 by a half-screenful, unless the first line already is displayed.
19600
19650 6. The "E" command causes WHO to quit. However, the last-drawn screen
19700 will not be cleared. So you can look at it.
19750
19800 7. Any other character will cause WHO to clear the screen (revealing
19850 your old page printer), then quit.
19900 *14 June 1972 VIDEO SWITCH DOCUMENTATION LES
19950 A SAILON describing the video switch hardware resides in
20000 VDS.LES[S,DOC]. A description of keyboard commands and monitor calls
20050 for controlling the switch and DD channel allocation are described in
20100 VIDEO.LES[UP,DOC]. To get a summary of the keyboard commands, say
20150 "HELP DISPLAY" or "SPOOL KEY.LES[UP,DOC]".
20200
20250 *7 July 1972 DOCUMENTATION FILES LES
20300 Online documentation files are divided into several areas, as follows.
20350 [P,DOC] contains the compiled version of the lab phone
20400 directory and other lists of people.
20450 [UP,DOC] contains user program descriptions (informal).
20500 [S,DOC] contains SAILONs, which are more formal descriptions
20550 of programs and hardware.
20600 [AIM,DOC] contains A. I. Memos, which report research results.
20650 [BIB,DOC] contains bibliographies of films, theses, SAILONs, etc.
20700
20750 *23 JULY 1972 KLOG RHT
20800 The KLOG command allows you to switch areas in one line. Semantically
20850 it is LOGOUT, followed by LOGIN. The syntax is:
20900
20950 KLOG {/<logout switch>} {ppn spec (as you would type to LOGIN)}
21000
21050 examples
21100
21150 KLOG 1/RHT
21200
21250 KL/F 1|RHT
21300
21350 KL
21400 1,RHT
21450
21500 *24 Jul 1972 SAIL DCS,RHT,JRL
21550 LEAP news
21600
21650 1. In the past global model users of LEAP were required
21700 to have the statement:
21750
21800 REQUIRE -1 NEW_ITEMS;
21850
21900 in order to inhibit the allocation of various tables
21950 for the local leap model. This statement is no longer
22000 required. Instead the decision to allocate the tables
22050 will be made using the following criteria. The local model
22100 tables will be allocated only if any of the programs loaded
22150 together to form a single job contain any declared local
22200 items ( that is, any items declared without the attribute
22250 GLOBAL), or any of the programs contain the statement:
22300
22350 REQUIRE n NEW_ITEMS;
22400
22450 where "n" is greater that 0.
22500 NOTE: this means that all users of local model LEAP must now
22550 "require" new_items if they are going to dynamically create
22600 non-global items by using the function NEW.(previously an
22650 implicit REQUIRE 60 NEW_ITEMS was contained in every program).
22700
22750
22800 2. LEAP tables are now allocated as part of the SAIL initialization
22850 code rather than on the first call to any LEAP subroutine.
22900 The tables will be allocated if any of the SAIL programs
22950 loaded contain declared items, itemvars, sets, lists or calls
23000 to LEAP. This change was made so that datums of items could
23050 be utilized before the first call to LEAP.
23100
23150 3. The type codes for items have been altered. The new codes
23200 returned by the TYPEIT function are as follows:
23250
23300 0 - item deleted or never allocated
23350 1 - no type (no datum for this item)
23400 2 - item is bracketed triple
23450 3 - string
23500 4 - real
23550 5 - integer
23600 6 - set
23650 7 - list
23700 8 - procedure
23750 16 - string array
23800 17 - real array
23850 18 - integer array
23900 19 - set array
23950 20 - list array
24000 21 - invalid (runtime has screwed something up)
24050 The very astute user will notice that the only changes are to
24100 up the codes for arrays and invalid by 5.
24150
24200 IMPORTANT NOTE:This unfortunately will necesitate the recompilation
24250 and reloading of any programs which use array items as the RUNTIME
24300 routines also use these type codes.The standard
24350 compiler SAIL on [1,3] will have these changes as of 23:59 WED,
24400 jul26. Therefore if any of your programs use array items you should
24450 recompile them starting Thurs jul 27. Foist all complaints onto
24500 Jim Low.
24550
24600
24650 *25 Jul 1972 SPOOLER REG
24700 SPOOLER NEWS:
24750 The old spooler '*LIST*' has been removed from the system.
24800 Users of the spooling subroutines described in SPSUB.REG[UP,DOC] will
24850 have to reload with the new libraray.
24900
24950 The command SPOOLQ has been removed. Instead, use the command
25000 QSPOOL. This has the advantage that the command can be abbreviated
25050 to one letter and the SPOOL command to two letters.
25100
25150 A new SPOOL command is planned. This will allow users to more
25200 fully utilize features of the new spooler.
25250
25300 *1 Aug 1972 FORTRAN REG
25350 DEC FORTRAN version 25 and LIB40 version 31 have been put up.
25400 Some of the bugs in the compiler / operating system have been
25450 eliminated.
25500
25550 *9 Aug 1972 DATA DISK FW
25600 Two new features have been added to data disk DPYOUT:
25650
25700 1) Overlapped mode, enabled by bit 0 of header word 0.
25750 In this mode, a DPYOUT will return without waiting for
25800 the transfer to be completed (although it will wait
25850 for any previou transfer), enabling the program to
25900 continue running. Header+2 will be set nonzero during
25950 the transfer, and to zero after the transfer is complete,
26000 so testing this is convenient (which should be done before
26050 changing the buffer). A DPYOUT with a zero word count will
26100 wait for a previous transfer without initiating a new one.
26150
26200 2) Double field mode, useful for text output. This is enabled
26250 by bit 1 of header word 0 and will cause the buffer to be
26300 transferred twice, once on each field. Header+3 should specify
26350 the address of the line address command word, which should
26400 contain the low-order line address as the third command in
26450 the word. Bit 24 of this word will be set to the proper
26500 field on each transfer. This feature cannot be used if more
26550 than one low-order line address command is used.
26600
26650 *16 Aug 1972 AP NEWS (APE, HOT) ME
26700
26750 We have a line from the Associated Press (AP) over which we get
26800 national and international news. The news that comes in gets filed
26850 on the disk and saved for about 24 hours.
26900
26950 For use in reading the news, there are two programs on the system.
27000
27050 Type "R HOT" to have the news typed on your console as it comes in.
27100
27150 Type "R APE" to be able to selectively read the news that is on file.
27200 The stories are catagorized by keywords; to read the news, you type
27250 to APE whatever keywords you want to read about. To get help when
27300 you are running APE, type "?" and carriage return at any point. For a
27350 list of the keywords, TYPE the file WORDS.SRT[AP,SYS] or SPOOL the
27400 file WORDS.LST[AP,SYS].
27450
27500 For further information, see the file APE.ME[UP,DOC].
27550
27600
27650 *16 AUG 1972 SAIL MATRIX ROUTINES PACKAGE SHK
27700
27750 Following Matrix Routines Now Available:
27800
27850 1) Real Matrix Multiplication Routine
27900 Multiplies two n-dimensional matrices (2-dimensional arrays)
27950 (size m x n by n x p to get a m x p matrix)
28000 or multiplies a 1-dimensional matrix by an n-dimensional matrix
28050 or an n-dimensional matrix by a 1-dimensional.
28100 MATMUL(REAL ARRAY A[a:b,c:d],REAL ARRAY B[c:d,e:f],REAL ARRAY C[a:b,e:f]);
28150 multiplies A by B and places the result in C
28200 (MATMUL(A,B,A) and MATMUL(A,B,B) are also valid.)
28250 The only thing it won't do (I think) is multiply two 1-dimensional
28300 matrices or n-dimensional arrays (n>2).
28350
28400 2) Array Clear Routine
28450 MATCLR(REAL (or INTEGER) ARRAY A);
28500 Zeros the array A.
28550
28600 3) Real Array Multiplied by a Real Constant
28650 CONMUL(REAL ARRAY A,REAL B);
28700 Multiplies array A by constant B and places the result in A.
28750
28800 All three are available by saying REQUIRE "MATMUL[4,SHK]" LOAD_MODULE;
28850
28900
28950 *30 Aug 1972 UUO SHK
29000 There is now a numerical listing of the UUO's - UUO.SHK[S,DOC]
29050
29100 *4 Sept 1972 AP NEWS (APE, HOT) ME
29150 The AP news is now spooled once a day (at a somewhat random
29200 time). The listing, which will be kept in the conference
29250 room, will indicate a file name of "APNEWS[AP,SYS]".
29300
29350 *4 SEP 1972 FILDMP RPH
29400 New program to list files in different formats. See FILDMP.RPH on UP,DOC.
29450
29500 *4 SEP 1972 NEW SAIL RHT
29550 EFFECTIVE 1201 AM SAT, 26 AUG, A NEW SAIL SYSTEM WILL BE UP. ITS
29600 SEGMENT WILL BE SAISG4. THIS NEW SYSTEM WILL INCLUDE SEVERAL NEW
29650 FEATURES, INCLUDING USER REQUESTED INITIALIZATIONS, A LOCATION(X)
29700 FUNCTION, AN IMPLICIT ARRAY: MEMORY[0:MEMSIZE], THE RUDIMENTS OF
29750 MULTIPLE PROCESSES, AND MUCH MORE. WE WILL TRY TO HAVE SOME
29800 DOCUMENTATION READY BY THE LATTER PART OF THE WEEK.
29850 *22 SEP 1972 NEW SAIL RHT,JRL,KVL
29900 THE NEW SAIL SYSTEM IS UP. THERE ARE MANY NEW FEATURES INCLUDING
29950 MULTIPLE-PROCESSES WITHIN JOBS,EVENTS, A LIMITED FORM OF BACKTRACKING
30000 BETTER FOREACH STATEMENTS, BETTER ERROR RECOVERY ETC.
30050
30100 THE DOCUMENTATION FOR THE NEW FEATURES IS NOT YET AVAILABLE, BUT
30150 EXAMPLES OF THE GLORY OF NEW SAIL ARE CONTAINED IN PAPER.DOC[S,JRL]
30200 NEWFEA.TXT[S,JRL].
30250
30300 THE NEW SYSTEM USES SAISG4, LIBSA4, HLBSA4, AND FOR YOU GLOBAL
30350 MODEL HACKERS GLBS10.
30400
30450 NO SOURCE LANGUAGE INCOMPATIBILITIES ARE KNOWN, BUT OF COURSE
30500 ALL PROGRAMS LOADED TOGETHER SHOULD BE COMPILED WITH THE
30550 NEW COMPILER, AND OLD PROGRAMS SHOULD BE RECOMPILED BEFORE THEYY
30600 ARE RELOADED.
30650
30700
30750 OLD DUMP FILES SHOULD CONTINUE TO RUN FOR A WHILE UNTIL
30800 SAISG3 IS DELETED.
30850
30900 SEND COMPLAINTS AND BUGS TO S,AIL OR SEE JRL,KVL OR RHT
30950 A CURRENT LISTING WILL BE APPRECIATED. BETTER SERVICE
31000 WILL BE GIVEN IF YOU ARE ABLE TO TICKLE THE BUG IN A SMALL
31050 PROGRAM WITHOUT UNREADABLE MACROS.
31100
31150 FOR THE NEXT COUPLE DAYS WE WILL KEEP THE PREVIOUS COMPILER
31200 AROUND AS SAIL.921[1,3], SAILOW.REL AS SAILOW.921, AND
31250 GLBLOW.REL AS GLBLOW.921. IF YOU FEEL YOU ARE BEING
31300 SCREWED BY SOME TERRIBLE BUG, YOU CAN, FOR INSTANCE,
31350 SAY SOMETHING LIKE
31400
31450 R SAIL.921 <CR>
31500 * FOO←FOO <CR>
31550 * LOADER!
31600 * SAILOW.921[1,3],FOO <ALT>
31650
31700 WHERE THE STARS ARE TYPED BY THE SYSTEM
31750
31800 THIS WILL GIVE YOU THE EFFECT OF DOING
31850
31900 LOA /COM FOO
31950
32000 USING THE PREVIOUS SYSTEM.
32050
32100 *22 Sept 1972 Upper Segment RAID and DDT TVR
32150 RAID or DDT may be retrieved from the disk and run from an upper
32200 segment. This means your core image may contain RAID at a much lower
32250 cost (102 octal words instead of 12200 words for RAID). For details
32300 see DEBUG.DOC[1,TVR]
32350
32400 *22 Sept 1972 AP NEWS (APE) ME
32450 Multiple word keywords are now implemented in APE. To use them,
32500 separate the individual words with spaces in your keyword exressions.
32550
32600 Also, to have only the first few lines of each story you select
32650 typed out, type an "F" at the beginning of the story selection
32700 line ("Read which one(s)?"). If you use both "F" and "=" on
32750 the same line, the order is irrelevant. When you use the "F"
32800 feature, you cannot spool or save the stories in a file.
32850
32900 For details on using APE, see the file APE.ME[UP,DOC].
32950
33000 *12 Oct 1972 FAIL TVR
33050 FAIL has been changed to stop at each error and give the option to
33100 continue to next error, continue automatically or to edit. The edit
33150
33200 option will call SOS if there are line numbers and TVED if not. Any
33250 complaints should be sent to TVR. If you don't want to stop at each
33300 error, give FAIL the switch (F). The old version is FAIL.OLD[1,3].
33350 *21 Oct 1972 SAIL JRL,RHT,KVL
33400 A new SAIL compiler has been put up to correct bugs reported in the
33450 last few weeks. There should be no incompatibitlies with the preceding
33500 compiler and programs compiled with the previous compiler should
33550 be runable with programs compiled with the new compiler. Thus, there
33600 is no need to recompile or even reload SAIL programs which have
33650 been compiled since SEPT 21. If you do have a program which
33700 compiled in the last month but doesn't now:
33750 1. REPORT THE PROBLEM TO A SAIL HACKER - or send
33800 a message to AIL, including such details as
33850 where a copy of the offending program is and the
33900 nature of the SAIL bug.
33950 2. You may use the previous compiler by
34000 R SAIL.102
34050 * FOO←FOO
34100 * <call>
34150 where FOO is the name of your sail program and <call>
34200 represents the typing of the CALL button (the stars are
34250 typed by the system). The above sequence is equivalent to
34300 the system level command:
34350
34400 COM /COM FOO
34450
34500 A note to users of multiple processes and matching procedures:
34550 To initialize the multiple process environment the user
34600 should include the following declaration:
34650
34700 EXTERNAL PROCEDURE MAINPR;
34750
34800 He should also make sure this procedure is called before
34850 doing any process sprouting or matching procedure calling.
34900 This is best done by using the REQUIRE INITIALIZATION feature
34950 or by making:
35000 MAINPR;
35050 The first executable statement of your program.
35100 This initialization will be compiled in, in the near future but until
35150 then the above hack is required.
35200 *3 Nov 1972 USER INTERRUPTS FW
35250 The PC stored on a memory protect interrupt via the new-style
35300 user interrupt system is now the exact PC stored by the hardware,
35350 rather than being incremented as it used to be. This is consistent
35400 both with the old-style (DEC) user interrupt system and with the
35450 "ILL MEM REF AT USER xxxxxx" typeout. If you really care about
35500 the exact value of this PC, consult me or the PDP-10 flowcharts,
35550 as it is anything but consistent.
35600 *3 Nov 1972 VIDEO SWITCH FW
35650 The VDSMAP UUO now allows the 6 extra switch channels to be
35700 addressed by setting bit 9 in the AC and putting the channel number
35750 (0-5) in the TTY# field (11-17).
35800
35850 *8 Nov 1972 DUMPS REG
35900 DART, a new program to back up disk files on tapes, is available.
35950 system commands DUMP, RESTORE, TLIST, REWIND, BACKSPACE, ADvANCE all
36000 run DART now, instead of DAEMON (CAUTION: new syntax in some cases).
36050 See DART.REG[UP,DOC].
36100
36150 *8 Nov 1972 PROTECTION REG
36200 The file access protection bit 400, which formerly had no
36250 signifigance, now means 'Dump Never' in DART. All files that had
36300 used this bit have been renamed without it.
36350
36400 *11 Nov 1972 SYSTEM REG
36450 The job table JOBQUE in the system now contains either the positive
36500 or negative value of the queue code of a job. Formerly, it had
36550 always been negative.
36600
36650 *26 Nov 1972 FTP DCS
36700 A new FTP has been installed with the following features:
36750
36800 1) You needn't type the MODE, TYPE, or BYTE commands at all
36850 unless you want to change the defaults of S, I, and 36 resp.
36900 Changing them is inadvisable since we only support those
36950 settings. The defaults will be to the foreign host just
37000 before the first data transfer.
37050
37100 2) RSTR clears any DATA connections that the FTP thinks it has
37150 open. Sometimes it's wrong. If you get an indication from
37200 FTP that a command is illegal because the DATA connection already
37250 exists, do this command. It will go away when hacks in FTP
37300 have been cured.
37350
37400 3) QUOT sends the rest of the line directly over the net, so you
37450 can use it to execute other peoples commands which are either
37500 nonstandard or just unsupported here. This won't do any good
37550 if our end has to be involved in the operation, but it is good
37600 to do things like STAT (status), and HELP at CMU.
37650 See FTP.DCS[UP,DOC] for "complete" information about our FTP,
37700 and NIC document 10596 for complete FTP protocol description.
37750
37800 *26 Nov 1972 MLISP2 DAV
37850 A new version of MLISP2 has been put on the system. An old version
37900 exists and will be around for one week. The main motivation for
37950 the changes was to fix several serious bugs,
38000 and to clean the language up prior to publishing a manual.
38050 Changes:
38100 (1) Variable names can no longer be literals (e.g. IF, FOR, ...).
38150 (2) <IDEXP>, <ADDEDEXPR> have been subsumed by <EXPRESSION>.
38200 (3) SPECIAL variables now must be declared at translation (PARSE)
38250 time. To facilitate this, a new production has been added,
38300 having the form: SPECIAL <identifier_list>
38350 It is strongly suggested that all SPECIAL variables be
38400 declared at the top of the program using this production.
38450 (4) ?# in the syntax (to inhibit scanning) should now be just #.
38500 It no longer takes up a syntax position.
38550 (5) Setting variables in backtracking contexts is now done with
38600 real LISP numbers (formerly machine representation).
38650 A function CONTEXT() gets the current backtracking
38700 context. X{CONTEXT()/10 + 3} ← etc. is now legal.
38750 (6) THE FOLLOWING CHANGE IS TEMPORARY; WILL BE FIXED IN A DAY OR 2:
38800 (*) Prefixes are more restricted in use; the syntax is
38850 <PREFIX> <SIMPEX> as always, but IF, FOR, CASE, etc.
38900 are no longer <SIMPEX>'s but are now full <EXPRESSION>'s.
38950 Thus RETURN IF ..., PRINT CASE ..., etc. no longer work;
39000 use RETURN(IF ..., PRINT(CASE ..., etc.
39050 (7) The syntax of SELECT has been changed. Use SUCCESSOR instead
39100 of NEXT, and FINALLY instead of IN WHICH CASE.
39150 E.g. SELECT CAR(L) FROM L:'(A B C) SUCCESSOR CDR(L)
39200 UNLESS NULL(L) FINALLY FAILURE()
39250 (8) MLISP2.PRI now prints as it goes along, instead of at the end.
39300
39350 *3 Dec 1972 SAIL RHT
39400 A new SAIL system will be put up at 2359 Thursday, 7 Dec 1972
39450 This system will include
39500 (1) Leap revisions by JRL. This means that any programs
39550 that use LEAP should be recompiled.
39600 (2) User required initializations will take place as
39650 the first executable statement of the main
39700 program (after outer block arrays have been
39750 initialized). Programs that are loaded
39800 with any .REL files which have user initializations
39850 should have their main programs recompiled.
39900 (3) Hooks into the user interrupt system have been provided.
39950 Those interested should see Russ Taylor.
40000 (4) A new kind of declaration has been provided:
40050 CLEANUP proc1,proc2,proc3;
40100 Where proc1, etc. are names of (parameterless)
40150 procedures. The effect of a CLEANUP declaration
40200 is to cause the named procedures to be called
40250 whenever the block in which it occurs is exited,
40300 whether by falling through the end, doing a go_to,
40350 or by any other means. These procedures will be
40400 called before any local arrays, sets, or lists are
40450 released. The calls will take place in the order
40500 specified. Thus:
40550
40600 BEGIN
40650 INTEGER I;
40700 PROCEDURE FOO;I←1;
40750 BEGIN
40800 INTEGER ARRAY X[0:I];
40850 PROCEDURE BAZ;OUTSTR(CVS(X[I]);
40900 CLEANUP FOO,BAZ;
40950 :
41000 COMMENT NOW WHEN THIS BLOCK IS EXITED, X[1] WILL
41050 BE PRINTED OUT;
41100
41150 :
41200 END;
41250 END;
41300
41350 (5) various minor modifications to the process stuff.
41400
41450 The new segment is SAISG5.SEG, the libraries are LIBSA5.REL
41500 & HLBSA5.REL.
41550
41600 The old compiler will be SAIL.D07[1,3]
41650
41700 *12 Dec 72 AP NEWS (APE) ME
41750 There is now a full search feature in APE. If you type in a word
41800 that is not in the keyword dictionary, APE will tell you so and ask
41850 you if you wish a "Full search?". If you type Y, the news file will
41900 be searched for the specified keyword. If you type ?, a (complete)
41950 summary of this feature will be typed out (try it!). If you type
42000 anything else, no search will be done. You may interrupt a search in
42050 progress by typing any character. (That means you may not type ahead
42100 during a search.)
42150
42200 Note: Every word not in the dictionary causes a separate search to
42250 take place and will require you to say Y to "Full search?".
42300
42350 Special note: Normally the whole news file is searched, taking 8 to
42400 10 seconds, but if a non-keyword is the second part of an
42450 intersection (eg, NIXON * JJ), then only the necessary stories are
42500 searched.
42550
42600 *12 DEC 72 PUB TES
42650 PUBMAC.DFS[1,3] has been edited to correct an error in INDEX creation.
42700 The old version is PUBMAC.OLD[1,3] for a few weeks.
42750
42800 The PUB manual has been deleted from the disk. The abstract remains
42850 on PUB.TES[S,DOC]. Bound copies are in the SAILON file drawer.
42900
42950 In January, a new-SAIL PUB should be up with several obscure but
43000 annoying bugs removed. Major restrictions and bugs now known:
43050 SEND INDEX ⊂ ... ⊃ must be all on one line
43100 See {PAGE X} must be followed by a non-word-break
43150 such as ) , ; ] .
43200 but definitely not a SPACE
43250 NARROW, WIDEN, VARIABLE only work within a block -- not at top-level.
43300 TURN OFF "}" inside blocks doesn't always work right (just for "}")
43350 ↓_abc_abc_abc_↓ seems not to work right in FILL mode someplaces.
43400 Footnotes hack a lot, esp. if the page fills up during one.
43450
43500 *23 Jan 73 AP NEWS (APE) ME
43550 A new version of APE has been put on the system. The new APE
43600 includes several changes to input formats, particularly where file or
43650 spooler output is desired. The file APE.ME[UP,DOC] has been updated
43700 to explain all the new features in detail. You should read that
43750 file, especially pages 4 to 12, before trying to run APE.
43800 Alternatively, you can type a question mark (and carriage return) to
43850 APE at any time to get help. Here are some of the main changes.
43900
43950 All input lines must now be ended with carriage returns (this
44000 includes the "Y" to cause a search).
44050
44100 Input to APE from a command file is now possible (and easy/fun). The
44150 command file should have the name APE.CMD to be most convenient, but
44200 any file name is legal as is (almost) any text file format (SOS, TV,
44250 E, etc.).
44300
44350 A "CHOOSE" feature has been added to allow you to see the beginning
44400 of each story and then decide if you want to see the rest of the
44450 story.
44500
44550 To get output to a file, you say
44600 <filename> ←
44650 followed by the usual story selection specification.
44700
44750 To get output to the spooler, you add an "S" to the selection line.
44800
44850 To avoid having stories typed out, for instance when they are being
44900 spooled, add a "D" (meaning Dont type 'em) to the selection line.
44950
45000 [ESC] I will interrupt searches as well as typeouts now.
45050
45100 A couple of features are written up in the documentation although
45150 they are not yet implemented. (The writeups do say of course that
45200 these features are unimplemented.) The features are: 1) AUTOMATIC
45250 NOTIFICATION, whereby you can be notified whenever a story comes in
45300 that matches a keyword expression you have specified; and 2) typeout
45350 of the keywords by which a story has been categorized. These
45400 features are written up in the hope that you will read the
45450 descriptions now and will understand the features when they are
45500 implemented.
45550
45600 *28 Jan 73 SAIL JRL
45650
45700 The item NIC returnedby INTERROGATE when the notice queue is empty,
45750 is now the same as the item UNBOUND used in ? FOREACHES and
45800 matching procedures.
45850 i.e.
45900 (NIC=UNBOUND) is TRUE
45950
46000 UNBOUND has a new name BINDIT since we felt the name UNBOUND had
46050 erroneous connotations.
46100
46150 Both NIC and UNBOUND will be allowed for a while, but you should
46200 replace them with BINDIT in your source-files.
46250
46300 Because of these changes programs using NIC, UNBOUND should be
46350 recompiled.
46400
46450 ANY is now an item (though it can't be used in MAKE statements).
46500
46550 So you may now say:
46600 ITMVR ← ANY;
46650 ERASE A⊗B≡ ITMVR;
46700 which will have the same effect as
46750 ERASE A⊗B≡ANY;
46800 ANY may be an element of a set or list.
46850 All itemvars are originally initialized to ANY.
46900
46950 *1 Feb 73 AP NEWS (APE) ME
47000 The keyword listing feature has now been implemented. Add a "W" to
47050 the selection line to have the keywords of each story typed out ahead
47100 of the story.
47150
47200 *22 Feb 1973 FAIL FW
47250 Several changes have been made to FAIL:
47300 1) CALL names are now automatically OPDEFed as their corresponding
47350 CALLIs, so CALL is virtually obsolete. This is done dynamically
47400 so it should always be up to date.
47450 2) BEND, if given an identifier argument, now checks that argument
47500 against the name of the block it ends, and generates an error
47550 message if they mismatch. This can be used as a check on
47600 BEGIN/BEND phasing.
47650 3) The symbol $. is now available, which is like . except that it
47700 refers to the location actually occupied by the current instruction.
47750 This differs from . inside literals or if a PHASE is in effect.
47800 4) Declaring a symbol both INTERNAL and EXTERNAL is now an error,
47850 rather than causing FAIL to drop dead as it used to.
47900 5) The test for too many BENDs now works properly.
47950 6) Frequently redefined macros no longer eat up large amounts of core.
48000
48050 *25 FEB 73 COPY RPH
48100
48150 New copy features:
48200 1) If you use [p] instead of [p,pn] the current default pn is used.
48250 2) XGPLIST, new command, equivalent to COPY XGP:←.
48300 3) New switch for font selects, format:
48350
48400 /FONT{#n}=<filename>{.ext}{[<p>,<pn>]}
48450
48500 If no ext is given, FNT is assumed. If no p,pn is given
48550 XGP,SYS is assumed.The #n is the font id number, if it is left
48600 out, it is assumed to be 0.
48650 4) New format for /EXTRA switch, if you use /EXTRA≡n.
48700 (yes that's an equivalence sign), then n is the number
48750 of scan lines to skip between text lines, not the number
48800 of extra line feeds to insert.
48850
48900 *4 MARCH 1973 MLISP DAV
48950
49000 New version of MLISP is up; old copies will be kept on MLISP.OLD
49050 and MLISPC.OLD on the system for a week or two. Differences:
49100 1) A couple of lingering bugs were squashed.
49150 2) A COMMENT expression was added so that MLISP will accept TV
49200 format files. Syntax:
49250 COMMENT <any characters except ; or unpaired " or %> ;
49300 It may occur anywhere an expression may be used, e.g.
49350 A + COMMENT A DUMB PLACE TO PUT IT; B + C
49400 BEGIN
49450 COMMENT A BETTER PLACE TO PUT IT;
49500 A + B + C;
49550 END;
49600 The old %...% comment is still around as always.
49650 3) An updated version of the LISP compiler is included in MLISPC.
49700 4) Insignificant change: function names are printed horizontally
49750 instead of vertically. Don't worry, PRINT is not screwing
49800 up; that's the way it is supposed to work.
49850
49900 *5 MARCH 1973 PUB TES
49950
50000 THIS NOTICE IS ABOUT 70 LINES LONG, IN DECREASING ORDER OF
50050 IMPORTANCE.
50100
50150 A NEW VERSION OF PUB IS UP TODAY WITH MANY REPAIRS AND A
50200 FEW CHANGES. OLD VERSION IS PUB.OLD. SEE TES WITH PROBLEMS.
50250
50300 NOTE: UNTIL THE NEXT VERSION OF PUB IS UP, XGP USERS SHOULD
50350 USE THE "DEVICE TTY" COMMAND OR THE "/T" SWITCH, ESPECIALLY
50400 IF THE PAGE FRAME IS HIGHER THAN 53 LINES.
50450
50500 ABOUT 15 KNOWN BUGS HAVE BEEN FIXED (THANKS TO RKJ AT CMU FOR
50550 A COUPLE OF STICKLERS). FOOTNOTES SHOULD WORK BETTER;
50600 VARIABLE DECLARATIONS WORK; CROSS-REFERENCES OF THE FORM
50650 "UNIT!" LABEL NOW WORK; AREA TEXT AND COUNT PAGE CAN ONCE
50700 AGAIN BE DECLARED IN BLOCKS; ROMAN NUMERALS, MOD, MIN, AND,
50750 GROUP BEGIN...END, INSERT...PORTION (WITH NO SENDS), AND SOME
50800 OTHER THINGS NOW WORK WELL. TRY OUT YOUR FAVORITE BUG.
50850
50900 ONE BUG NOT YET FIXED: SOMETIMES PUB WILL LOOP
50950 WHEN THERE ARE AREAS DECLARED THAT DON'T START AT CHAR 1.
51000 REPORT OTHER BUGS TO TES.
51050
51100 CHANGES AND NEW FEATURES:
51150 (1) TYPEOUT DURING COMPILATION RESEMBLES NEW SAIL'S.
51200 NOTE: FILES LIKE 3INDE.PUZ AND 2CONT.PUG ARE GENERATED
51250 FILES. PAGE 1 OF TV FILES IS NOT REPORTED BY PUB.
51300
51350 (2) THERE IS NO LONGER A BLANK PAGE AT THE BEGINNING OF LPT
51400 DOCUMENTS.
51450
51500 (3) NEW COMMAND TO CIRCUMVENT CHANGE (2): "BLANK PAGE N" CLOSES
51550 THE CURRENT PGE AND LEAVES N BLANK PAGES IN THE DOCUMENT.
51600 THE PAGE COUNTER IS NOT AFFECTED. IF N IS OMITTED, 1 IS
51650 ASSUMED.
51700
51750 (4) FOR TTY USERS: INSTEAD OF CURLY BRACKETS AND HORSESHOE
51800 BRACKETS, YOU CAN NOW USE THE FOLLOWING CHARACTER PAIRS:
51850 $( MEANS LEFT HORSESHOE (OPEN MACRO)
51900 )$ MEAN RIGHT HORSESHOE (CLOSE MACRO)
51950 ]$ MEANS RIGHT BRACE (SWITCH TO TEXT MODE)
52000 THESE ARE ONLY VALID IN COMMAND MODE AND NEED NOT BE TURNED
52050 ON. ON THE OTHER HAND, THE FOLLOWING CONTROL CHARACTERS
52100 ARE ONLY RECOGNIZED IN TEXT MODE AND MUST BE TURNED ON
52150 (OTHER CHARACTERS MAY BE TURNED ON FOR THEM):
52200 $[ MEANS LEFT BRACE (SWITCH TO COMMAND MODE).
52250
52300 (5) NEW FEATURE: TURN ON/OFF TAB FOR "<CHARACTER>" ;;
52350 AS PUB READS THE MANUSCRIPT, IT SUBSTITUTES FOR EACH "TAB"
52400 FROM ONE TO EIGHT SPACES. THIS COMMAND CHANGES PUB SO THAT
52450 IT SUBSTITUTES THE SINGLE CHARACTER <CHARACTER> INSTEAD.
52500 THE COMMAND MUST BE FOLLOWED BY TWO SEMICOLONS OR ELSE IT MAY
52550 NOT TAKE EFFECT ON THE NEXT LINE. IF IT IS DECLARED IN A BLOCK,
52600 THE "END" OF THE BLOCK MUST BE FOLLOWED BY TWO SEMICOLONS OR
52650 THE ORIGINAL MEANING OF TAB MAY NOT REAPPEAR IN TIME FOR THE
52700 NEXT LINE.
52750
52800 (6) SINGLE SPACE, DOUBLE SPACE, AND TRIPLE SPACE NOW BREAK BEFORE
52850 CHANGING THE VALUE OF SPREAD, SO THEY TAKE EFFECT IMMEDIATELY.
52900
52950 SUGGESTIONS AND WARNINGS:
53000 (1) "COUNT PAGE" INITIALLIZES THE PAGE COUNTER TO NULL. IT
53050 GETS STEPPED TO 1 THE NEXT TIME A PAGE IS OPENED.
53100 THIS IS WHY THE TITLE PAGE HAS A BLANK PAGE NUMBER.
53150
53200 (2) AREA RE-DECLARATIONS DO NOT TAKE EFFECT UNTIL THE
53250 CURRENT PAGE IS CLOSED.
53300
53350 (3) IF YOUR DOCUMENT IS LONG, IT IS HELPFUL TO HAVE A SOURCE
53400 FILE FOR EACH CHAPTER, AND ON EACH DEBUG RUN TO "REQUIRE"
53450 FROM THE MAIN MANUSCRIPT FILE ONLY THOSE CHAPTER FILES THAT
53500 YOU ARE TESTING. GLOBAL MACROS SHOULD APPEAR IN THE MAIN
53550 FILE OF COURSE.
53600
53650 THE MANUAL HAS NOT BEEN CHANGED, BUT IT IS BACK ON THE DISK
53700 FOR THE BENEFIT OF NET USERS (SEE PUB.TES[S,DOC] FOR DETAILS).
53750
53800 *9 MARCH 1973 MLISP2 DAV
53850
53900 A new version of MLISP2 is up. Old version is on SYS:MLISP2.OLD for
53950 a week or so. There have been extensive changes, but most are additions
54000 so that programs shouldn't have to be altered. The changes:
54050
54100 1) The code generated in the syntax part of productions is somewhat
54150 shorter and more efficient.
54200
54250 2) There is now a way to prevent an identifier in the syntax part of
54300 a production from being turned into a LITERAL, namely precede it
54350 with a quote mark (').
54400 Example: {IF ...}
54450 makes IF a LITERAL, as well as generating code to check for it,
54500 but {'IF ...}
54550 just generates the code to check for it. In fact, any token
54600 of type identifier, number or delimiter may be included in
54650 the syntax by preceeding it with the quote mark; previously
54700 only delimiters could be so included.
54750
54800 3) Numbers in syntax patterns MUST now be preceeded by the quote
54850 mark; previously they could occur alone. This should not
54900 affect anyone, since I don't know of anyone who uses numbers.
54950
55000 4) The syntax of FOR, WHILE and UNTIL loops has been generalized
55050 slightly: `WHILE' and `UNTIL' are now interchangeable:
55100 Examples: FOR NEW I IN L DO NIL UNTIL I = X;
55150 FOR NEW I IN L DO NIL WHILE I = X;
55200 DO PRINT(X) UNTIL A=B;
55250 DO PRINT(X) WHILE A=B;
55300 WHILE A=B DO PRINT(X);
55350 UNTIL A=B DO PRINT(X);
55400 In addition, the code generated by COLLECT in all of the loops
55450 is now more efficient (generates an NCONC in some cases, rather
55500 than an APPEND).
55550
55600 5) The DEFINE expression and the vector operator (⊗) have been
55650 added to MLISP2 to make it more compatible with MLISP
55700 (c.f. the MLISP manual). However, the DEFINE
55750 expression is not quite as general: only prefix and infix
55800 functions may be DEFINEd, whereas MLISP would allow any
55850 symbol to be DEFINEd.
55900 Syntax: DEFINE <dterm>, <dterm>, ..., <dterm> (at least 1)
55950 <dterm> ::= <identifier> PREFIX [<token>] [<integer>]
56000 <identifier> <integer> <integer>
56050 <identifier> <token> [<integer> <integer>]
56100 where [] means optional.
56150 The integers are binding powers for the function; only one
56200 binding power, the right binding power, needs to be specified for
56250 prefixes. The <token>s are identifiers or delimiters which
56300 may serve as an abbreviation for the function.
56350 Examples: DEFINE NOT PREFIX;
56400 DEFINE NOT PREFIX ¬;
56450 DEFINE NOT PREFIX 1000;
56500 DEFINE PLUS + 350 400;
56550
56600 6) ONLY FUNCTIONS THAT ARE EXPLICITLY DEFINE'D TO BE PREFIXES MAY
56650 NOW BE USED AS PREFIXES (I.E. WITHOUT () AROUND THEIR
56700 ARGUMENT AND WITH THE VECTOR OPERATOR ⊗)!!! NO MORE USER-DEFINED
56750 PREFIXES UNLESS EXPLICITLY DEFINE'D!!!
56800
56850 *16 March 1973 FREEFOROL processes Text Macros LES
56900 Freeforol may be used to generate form letters or other fill-in-
56950 the-blanks text. It is described in FREEFO.LES[UP,DOC].
57000
57050 *21 March 1973 WHERE Command TVR
57100 Typing WHERE <programmer> will print the status of such jobs
57150 currently logged in. For example, WHERE NET,GUE will WHERE all
57200 network guests. Like WHO, this also clobbers your core image.
57250
57300 *27 March 1973 TV ↔ E switching DCS and FW
57350
57400 During transition from TV to E, there will be features available
57450 in one which are unavailable in the other. To ease the switch,
57500 we have installed complementary extend-mode commands: "ETV"
57550 in TV, "TV" in E. Executing it will switch editors (writing
57600 current page first, if necessary). The new editor will be
57650 editing the same file, on the same page and line, with the same
57700 protection (readonly or readwrite).
57750
57800 The "TV" command in E is only a special case of a much more
57850 glorious "RUN" feature. For more information see TV2E.FW[UP,DOC].
57900
57950 *4 April 1973 TALKER, FTP DCS
58000
58050 In response to the Site: prompt, one can type a site name or
58100 a (decimal) site number -- one way to try to find out the site
58150 name of an otherwise Anonymous site.
58200
58250 *5 April 1973 PUB TES
58300 Users of Jerry Agin's underground figure macros note:
58350
58400 "MACRO SECREF" et al have a bug which was ignored by old
58450 versions of PUB but now result in the error message:
58500 "EXTRANEOUS { IN COMMAND LINE"
58550 To fix this, remove both the { and } from these particular
58600 macros. E.G.:
58650 .MACRO SECREF ⊂ "Section " ;{SECTION! LBL} ⊃
58700 should be:
58750 .MACRO SECREF ⊂ "Section " ;SECTION! LBL ⊃
58800
58850 If you like, this can be abbreviated:
58900 .MACRO SECREF ⊂ "Section!" LBL ⊃
58950 which did not work in old versions but now does!
59000
59050 *8 April 73 APE, AUTOMATIC NOTIFICATION ME
59100
59150 If you wish to be notified each and every time an AP story comes in
59200 that matches a given keyword expression, type the expression to APE
59250 and precede it with a dollar sign ($). For example,
59300 $JUPITER*PIONEER
59350 When a story comes in that matches the expression, you will be sent a
59400 message which you will get when you login. Also, if you are logged
59450 in at the time the story comes in, the message
59500 *** AP STORY FOUND ***
59550 will be typed on your console.
59600
59650 To see what automatic notification requests you currently have, type
59700 the keyword expression "$" (just dollar sign) to APE. To be able to
59750 delete these requests, type the expression "$$". Each request will
59800 expire two months after it is submitted. At that time you will get a
59850 message indicating that the request has expired.
59900
59950 *11 APR 73 XGP REM
60000 The currently most-useful program for printing documents on
60050 the Xerox Graphics Printer is MRPP3[XGP,REM] (Maas Research Paper
60100 Plotter program, version 3) which allows you to change fonts anywhere
60150 (in the middle of a word if you wish), do paragraph justification and
60200 centering, super-scripts above sub-scripts, nicely-formatted tabular
60250 listings, etc. The latest documentation is usually posted on the
60300 bulletin board near the machine room, however if you want you own
60350 copy here is what you do:
60400 .RU MRPP3[XGP,REM]
60450 FOO.LST←MRPP3.WRU[XGP,REM]
60500 then when it is all finished and you see XG @QQXGP.RPG in your line
60550 editor, hit carriage return, wait for the device to be available if
60600 it is busy, then collect the approximately three pages as they come
60650 out of the XGP (after the 2 8/10 pages of chard that comes out ahead
60700 of each listing).
60750
60800 *9 APR 73 APE, AUTOMATIC NOTIFICATION ME
60850
60900 Here are some notes on using Automatic Notification for AP stories.
60950
61000 Automatic notification (AN) is intended to be used for two main
61050 purposes. 1) If you are expecting an urgent story to come in at any
61100 moment, and you want to be notified as soon as it comes in (assuming
61150 you are logged in), automatic notification saves you the trouble of
61200 running APE every half hour to find out if your story has come in.
61250 2) If you are expecting a story to come in some day, but you don't
61300 know when, then AN saves you the effort of running APE every day, if
61350 you wouldn't otherwise do so.
61400
61450 If you find you are being notified about the same kind of story
61500 several times a day, and if the stories are not particularly urgent,
61550 then you will probably find that the normal use of APE, possibly
61600 using a command file (see previous section) will be more convenient.
61650 Also, the more AN requests there are, the more work the continually
61700 running special AP programs have to do. However, you are free to
61750 choose the method of using APE that best fits your purposes.
61800
61850 One final note on AN: When you get a hit from an AN request, the best
61900 way to use APE to read the story is to type in the expression
61950 (possibly using a command file) that got the hit. Alternatively, you
62000 can type in the sequence number of the story found, but this is
62050 liable to give you an extra story with the same sequence number. You
62100 can combine these two methods and type something like (say)
62150 "#35*CHESS", if CHESS was the AN request getting a hit on story #35.
62200 If a story you have been notified about is more than a day or so old,
62250 then you will probably not find it with APE. However, since the news
62300 is spooled every day, you should be able to find old stories in the
62350 stack of listings in the lounge (unless you are a remote user!). For
62400 even older listings, see ME.
62450
62500 For more details, see APE.ME[UP,DOC], special features 10, 11 and 12.
62550
62650 *9 May 1973 FAIL FW
62750
62850 Several changes have been made to FAIL:
62950
63050 1) The CALLI opcode definer has been extended to include all
63150 UUO opcodes. Thus all existing system calls now have their
63250 mnemonics predefined in FAIL. Again, this is dynamic, so
63350 it will continue to be up-to-date with no further changes
63450 to FAIL itself.
63550
63650 2) A couple of new symbol constructs are available. One is
63750 SYM::, which defines SYM as a half-killed label, just
63850 as in SYM←←EXPR. Also, SYM↑ may be used anywhere SYM is
63950 legal and will make SYM either EXTERNAL or INTERNAL,
64050 depending upon whether it is defined in the program.
64150 Thus SYM↑:: makes SYM a half-killed internal label, etc.
64250 (N.B.: Any symbol which has been declared EXTERNAL will
64350 be converted to INTERNAL if and when it is defined.)
64450
64550 3) The PRGEND statement (from MACRO) is now available to
64650 allow multiple independent programs to be assembled
64750 within a single file. This is particularly useful for
64850 libraries. PRGEND behaves exactly like END, and similarly
64950 causes a complete assembler restart, except that I/O
65050 is undisturbed and assembly continues.
65150
65250 *19 MAY 1973 MLISP2 DAV
65350
65450 Two new runtime functions have been added to MLISP2:
65550 PEEKVAL(integer) - peeks at the integer'th token ahead without
65650 advancing the scanner, and returns its value
65750 PEEKTYPE(integer) - peeks at the integer'th token ahead without
65850 advancing the scanner, and returns its type
65950 The existing runtime function PEEK is equivalent to
66050 PEEKVAL(1) CONS PEEKTYPE(1)
66150
66250 The MLISP2 manual/report is now available as AI Memo 195.
66350
66450 *22 May 73 MAIL SEND REMIND CANCEL BH
66550 The SEND command now sends messages to users' consoles, and the
66650 MAIL command sends messages to be received on login (what SEND
66750 used to do). There is also a REMIND command for delayed messages,
66850 and a CANCEL command to delete reminder requests. All these
66950 commands are fully documented in MAIL.BH[UP,DOC].
67050
67150 *1 JUNE 1973 MLISP2 DAV
67250
67350 New MLISP2 system up. Features:
67400
67450 (1) An automatic accounting feature has been added to MLISP2's
67550 version of LAP. Any user (or system) function compiled
67650 into LAP and read in will be included in the accounting
67750 system. The accounting system keeps track of the total
67850 number of times a function is called. (It adds two
67950 instructions to every function LAP'ed in:
68050 AOSA .+1
68150 0
68250 <user code>
68350 ). The counts may be examined, set, and reset. NOTE:
68450 interpreter and interpreted functions are not accounted;
68550 only functions LAP'ed in.
68600
68650 (2) To facilitate the above feature, two new runtime functions
68750 have been added:
68850 GETCOUNT(atom) - takes a function name as its argument
68950 and returns the number of times the function
69050 has been entered.
69150 PUTCOUNT(atom, integer) - sets the number of times the
69250 function has been entered to the integer (usually 0).
69450
69550 *2 Jun 73 MAIL SEND REMIND CANCEL LATER GRIPE BH
69650 The following nifty features have been added to the MAIL program:
69750 1. The switch /D on SEND, MAIL, or REMIND will add a line to the
69850 message containing a list of the destinations. If your list
69950 included a file reference, both the file spec and its contents
70050 will be listed. Try SEND/D . FOO etc. for the format.
70150 2. The REMIND system will now run an arbitrary program for you
70250 if you use the command
70350 .LATER <filespec> <core> <datime> <count>
70450 default device DSK (the only other option is SYS), default
70550 extension DMP. Datime and count are like REMIND. Core is
70650 an optional argument in real angle brackets specifying an
70750 initial core allocation and/or start address offset as in
70850 the SWAP UUO, in the format <99K,+77> (decimal and octal).
70950 Note: I expect this command to be added to the system any
71050 day now; meanwhile, type R MAIL<cr> first.
71150 3. There is an RPG feature, which reads commands from QQMAI.RPG;
71250 see MAIL.BH[UP,DOC] for a full description of this and
71350 related useless features.
71450 4. The GRIPE command exists to vent your anger at Ralph's
71550 malfunctions.
71650 5. REMIND/M or REMIND/S for mail only or send only.
71750 6. If you are logged in when someone MAILs you a note, you
71850 get a one-line message ;; →→→ MAIL FOR ppn ←←←. This
71950 is also true for mail sent over the net via FTP.
72050 7. If you type in a long message and get screwed because
72150 of an error in the destination list or something, you
72250 can REENTER and edit your command.
72350 All the gory details are in MAIL.BH[UP,DOC], which you
72450 should be sure to read especially if you want to use the
72550 LATER or RPG features.
72650 *4 Jun 73 MAIL SEND REMIND LATER CANCEL GRIPE BH
72750 The destination list is now checked by MAIL and friends
72850 before asking for the message. Invalid destinations (i.e.,
72950 non-existent users) get a message; if there are no valid
73050 destinations in the list, the program exits. Note: SEND
73150 does not check for logged-in users until ater you enter the
73250 message, as before; only the existence of a file directory
73350 is checked ahead of time.